import store from '@/store'

/**
 * 获取用户当前所在的位置 【适应微信新版本获取地里位置信息，旧getLocation方法频繁调用有性能问题，并且30秒只能获得一次成功】 
 */
const getLocation = () => {
	return new Promise((resolve, reject) => {
		let _locationChangeFn = (res) => {
			resolve(res) // 回传地理位置信息
			// wx.offLocationChange(_locationChangeFn) // 关闭实时定位
			// wx.stopLocationUpdate(_locationChangeFn); // 关闭监听 不关闭监听的话，有时获取位置时会非常慢
		}
		wx.startLocationUpdateBackground({
			type: 'gcj02',
			success: (res) => {
				wx.onLocationChange(_locationChangeFn)
			},
			fail: (err) => {
				// 重新获取位置权限
				wx.openSetting({
					success(res) {
						res.authSetting = {
							"scope.userLocationBackground": true
						}
					}
				})
				reject(err)
			}
		})
	})
}

export function checkOpenGPSServiceByAndroid() {
		let that = this
		// 1、判断手机定位服务【GPS】 是否授权
		uni.getSystemInfo({
			success(res) {
				// console.log(res)
				let locationEnabled = res.locationEnabled; //判断手机定位服务是否开启
				let locationAuthorized = res.locationAuthorized; //判断定位服务是否允许微信授权
				if (locationEnabled == false || locationAuthorized == false) {
					//手机定位服务（GPS）未授权
					uni.showModal({
						title: '提示',
						content: '请打开手机定位服务功能',
						showCancel: false, // 不显示取消按钮
						success() {
							store.dispatch('LogOut').then(res => {
								uni.reLaunch({
									url: '/pages/login/login'
								})
							})
						}
					})
				} else {
					//手机定位服务（GPS）已授权
					if (res.hostName == 'WeChat') {
						//2、判断微信小程序是否授权位置信息
						uni.getSetting({
							success(res) {
								let scopeUserLocation = res.authSetting["scope.userLocationBackground"];
								if (scopeUserLocation) {
									// 微信小程序已授权位置信息
								} else {
									// 微信小程序未授权位置信息
									uni.showModal({
										title: '提示',
										content: '请允许小程序使用和离开后获取位置信息',
										showCancel: false, // 不显示取消按钮
										success() {
											store.dispatch('LogOut').then(res => {
												uni.reLaunch({
													url: '/pages/index/login'
												})
											})
										}
									})
								}
							},
							fail() {
								// 微信小程序未授权位置信息
								uni.showModal({
									title: '提示',
									content: '微信获取位置信息失败',
									showCancel: false, // 不显示取消按钮
									success() {
										store.dispatch('LogOut').then(res => {
											uni.reLaunch({
												url: '/pages/index/login'
											})
										})
									}
								})
							}
						});

					} else {
						console.log('else=========')
					}
				}
			},
			fail() {
				// 手机定位服务（GPS）未授权
				uni.showModal({
					title: '提示',
					content: '获取手机位置信息失败',
					showCancel: false, // 不显示取消按钮
					success() {
						store.dispatch('LogOut').then(res => {
							// uni.navigateBack({
							// 	delta: 1, //返回层数，2则上上页
							// })

							uni.reLaunch({
								url: '/pages/index/login'
							})
						})

					}
				})
			}
		});
	}